package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 自助小程序设置对象 self_service_mini_program_settings
 *
 * @author ruoyi
 * @date 2025-05-20
 */
@ApiModel("自助小程序设置对象")
public class SelfServiceMiniProgramSettings extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自助小程序设置表的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 联系电话 */
    @ApiModelProperty("联系电话")
    @Excel(name = "联系电话")
    private String phone;

    /** 用户小程序显示桌台 */
    @ApiModelProperty("用户小程序显示桌台")
    @Excel(name = "用户小程序显示桌台")
    private String userDisplayTables;

    /** 可预订开始时间(格式: HH:MM:SS) */
    @ApiModelProperty("可预订开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可预订开始时间(格式: HH:MM:SS)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookableStartTime;

    /** 可预订结束时间(格式: HH:MM:SS) */
    @ApiModelProperty("可预订结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可预订结束时间(格式: HH:MM:SS)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookableEndTime;

    /** 默认计费方式(如:按小时计费/按次计费) */
    @ApiModelProperty("默认计费方式")
    @Excel(name = "默认计费方式(如:按小时计费/按次计费)")
    private String defaultBillingMethod;

    /** 其他可选计费方式 */
    @ApiModelProperty("其他可选计费方式")
    @Excel(name = "其他可选计费方式")
    private String otherOptionalBillingMethods;

    /** 是否禁止提前结束退款 */
    @ApiModelProperty("是否禁止提前结束退款")
    @Excel(name = "是否禁止提前结束退款")
    private Integer noEarlyEndRefund;

    /** 验券开单计费规则(如:按券面值抵扣/按百分比抵扣) */
    @ApiModelProperty("验券开单计费规则")
    @Excel(name = "验券开单计费规则(如:按券面值抵扣/按百分比抵扣)")
    private String verificationBillingRule;

    /** 验券预订计费规则(如:直接抵扣/预留金额) */
    @ApiModelProperty("验券预订计费规则")
    @Excel(name = "验券预订计费规则(如:直接抵扣/预留金额)")
    private String verificationBookingRule;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    public void setUserDisplayTables(String userDisplayTables)
    {
        this.userDisplayTables = userDisplayTables;
    }

    public String getUserDisplayTables()
    {
        return userDisplayTables;
    }

    public void setBookableStartTime(Date bookableStartTime)
    {
        this.bookableStartTime = bookableStartTime;
    }

    public Date getBookableStartTime()
    {
        return bookableStartTime;
    }

    public void setBookableEndTime(Date bookableEndTime)
    {
        this.bookableEndTime = bookableEndTime;
    }

    public Date getBookableEndTime()
    {
        return bookableEndTime;
    }

    public void setDefaultBillingMethod(String defaultBillingMethod)
    {
        this.defaultBillingMethod = defaultBillingMethod;
    }

    public String getDefaultBillingMethod()
    {
        return defaultBillingMethod;
    }

    public void setOtherOptionalBillingMethods(String otherOptionalBillingMethods)
    {
        this.otherOptionalBillingMethods = otherOptionalBillingMethods;
    }

    public String getOtherOptionalBillingMethods()
    {
        return otherOptionalBillingMethods;
    }

    public void setNoEarlyEndRefund(Integer noEarlyEndRefund)
    {
        this.noEarlyEndRefund = noEarlyEndRefund;
    }

    public Integer getNoEarlyEndRefund()
    {
        return noEarlyEndRefund;
    }

    public void setVerificationBillingRule(String verificationBillingRule)
    {
        this.verificationBillingRule = verificationBillingRule;
    }

    public String getVerificationBillingRule()
    {
        return verificationBillingRule;
    }

    public void setVerificationBookingRule(String verificationBookingRule)
    {
        this.verificationBookingRule = verificationBookingRule;
    }

    public String getVerificationBookingRule()
    {
        return verificationBookingRule;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("phone", getPhone())
                .append("userDisplayTables", getUserDisplayTables())
                .append("bookableStartTime", getBookableStartTime())
                .append("bookableEndTime", getBookableEndTime())
                .append("defaultBillingMethod", getDefaultBillingMethod())
                .append("otherOptionalBillingMethods", getOtherOptionalBillingMethods())
                .append("noEarlyEndRefund", getNoEarlyEndRefund())
                .append("verificationBillingRule", getVerificationBillingRule())
                .append("verificationBookingRule", getVerificationBookingRule())
                .toString();
    }
}
